<?php
/**
 * 基础控制器
 * User: zal
 * Date: 2016/2/27
 * Time: 18:05
 */
namespace Api\Controller;
use Think\Controller;
class BaseController extends Controller
{

    const CATE_REPAIR = 1;      //  维修
    const CATE_RENOVAT = 2;      //  装修
    const CATE_MALL = 3;      //  商城

    //状态
    const STATUS_ON         =   1;      // 开启
    const STATUS_OFF       =   0;      // 关闭

    /**
     * 初始化,权限控制,菜单显示
     * @author zal
    */
    protected function _initialize(){
        /* 读取数据库中的配置 */
        $config =   S('DB_CONFIG_DATA');
        if(!$config){
            $config =   api('Config/lists');

            S('DB_CONFIG_DATA',$config);
        }
        C($config); //添加配置
        if(!C('WEB_SITE_CLOSE')){
            die('站点已经关闭，请稍后访问~');
        }
        visitors_ip();
    }

    public function __construct() {
        //控制器初始化
        header("Access-Control-Allow-Origin: *");
    }

    /**
     * 获取用户基本信息
     * @param $map array 条件（'字段'=>字段值）
     * return array
     */
    protected function getUserInfo($map){
        $user=M('user')->where($map)->find();
        return $user;
    }

    /**
     * 检测用户id是否为空，用户是否存在
     * @param $user_id int 用户id
     * @return array
     */
    protected function checkUserIsExist($user_id){
        $data=array();
        $map["user_id"]=$user_id;
        $user=$this->getUserInfo($map);
        if(empty($user_id)){
            $data["err_code"]=1001;
            $data["err_msg"]='用户id不能为空';
        }else{
            if(empty($user)){
                $data["err_code"]=1006;
                $data["err_msg"]='用户不存在';
            }else{
                $data["user"]=$user;
            }
        }
        return $data;
    }

    /**
     * 获取月份有多少天
     * @param $year   年
     * @param $month  月
     */
    protected function getMonthToDays($year,$month){
        $text="";
        if (in_array($month, array(1, 3, 5, 7, 8, 01, 03, 05, 07, '08', 10, 12))) {
            $text = '31';
        }elseif ($month == 2){
            if ($year % 400 == 0 || ($year % 4 == 0 && $year % 100 !== 0)) {        //判断是否是闰年
                $text = '29';
            } else {
                $text = '28';
            }
        } else {
            $text = '30';
        }
        return $text;
    }

    /**
     * 获取用户钱包
     * @param $user_id
     * @return mixed
     */
    protected function getUserMoney($user_id){
        $map["user_id"]=$user_id;
        $userMoney=M('UserMoney')->where($map)->find();
        if(empty($userMoney)){
            $data["code"]=1010;
            $data["msg"]='用户钱包不存在';
        }
        else if($userMoney["status"]!=self::STATUS_ON){
            $data["code"]=1011;
            $data["msg"]='用户钱包存在异常';
        }else{
            $data=$userMoney;
        }
        return $data;
    }

    /*
     * 判断订单是否存在
     * 存在返回对内订单号
     */
     protected function checkorder($order_id){
        $data = M('repair_order')->field('repair_order_id')->where("repair_order_num_alias = $order_id")->find();
        if(!$data) {
            $info = array('code'=>'404','msg'=>'订单不存在！');
            $this->ajaxReturn($info);
        }else{
            return $data[repair_order_id];
        }

    }
}